package com.onpositive.realmview.model.realm;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

import com.onpositive.realmview.IRealmView;
import com.onpositive.realmview.model.IHasViews;
import com.onpositive.realmview.model.IViewGrouping;
import com.onpositive.realmview.model.IWorkingCopy;
import com.onpositive.semantic.model.api.property.IProperty;

public interface IRealmPosition extends IHasViews<Object>{

	public IViewGrouping[] getGoodGroupings(IRealmView p);

	public IRealmPosition derive(IProperty p, Object value);

	public IRealmPosition deriveInverse(IProperty p, Object propertyValue);


	void store(DataOutputStream stream) throws IOException;
	
	void load(DataInputStream stream) throws IOException;
	
	public IWorkingCopy newCopy();
	
	public Object getDefaultValue(String propId);
	
	public void setDefaultValue(String propId,Object value);
	
	
}
